#ifndef _CAMERA_H_
#define _CAMERA_H_

#include "Object.h"
#include <gccore.h>

class Camera : public Object {
public:
	Camera();
	~Camera();

	void Set(Vector3D pos, Vector3D _lookAt, Vector3D _upVector);
	void SetLookAt(Vector3D _lookAt);
	void SetUpVector(Vector3D _upVector);
	void SetFOV(f32 _fov);
	void SetFar(f32 _far);
	void SetNear(f32 _near);
	f32 GetFOV();
	f32 GetFar();
	f32 GetNear();
	Mtx* GetViewMatrix();
	void ApplyCamera();

private:
	Vector3D upVector, lookAt;
	f32 fov, near, far;
	Mtx viewMtx;
};

#endif // _CAMERA_H_
